"""
初始化默认用户脚本
创建管理员用户用于登录系统
"""
import asyncio
import os
import sys

# 添加项目根目录到Python路径
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))

from sqlalchemy.orm import Session
from app.core.database import SessionLocal
from app.models.user import User
from app.services.auth_service import AuthService


def create_default_admin(db: Session):
    """创建默认管理员用户"""
    # 检查是否已存在管理员用户
    admin_user = db.query(User).filter(User.is_superuser == True).first()
    if admin_user:
        print("管理员用户已存在，跳过初始化")
        return
    
    # 创建默认管理员用户
    auth_service = AuthService(db)
    hashed_password = auth_service.get_password_hash("admin123")
    
    admin = User(
        email="admin@example.com",
        username="admin",
        full_name="管理员",
        hashed_password=hashed_password,
        is_active=True,
        is_verified=True,
        is_superuser=True
    )
    
    db.add(admin)
    db.commit()
    print("默认管理员用户创建成功")
    print("用户名: admin")
    print("密码: admin123")


def main():
    """主函数"""
    db = SessionLocal()
    try:
        create_default_admin(db)
    except Exception as e:
        print(f"初始化失败: {str(e)}")
        db.rollback()
    finally:
        db.close()


if __name__ == "__main__":
    main()